<!DOCTYPE html>
<!--
     SPDX-License-Identifier: CC-BY-SA-4.0
     SPDX-FileCopyrightText: 2020 seL4 Project a Series of LF Projects, LLC.
-->
<!-- Page last generated 2025-02-20 03:16:15 +0000 -->
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Meta Docsite | seL4 docs</title>

    <!-- Our stylesheet and theme stylesheet.  Contains bootstrap. -->
    <link rel="stylesheet" href="/assets/css/style.css" type="text/css">
    <!-- Font awesome -->
    <link href="https://use.fontawesome.com/releases/v5.0.8/css/all.css" rel="stylesheet">
    <link href="https://fonts.googleapis.com/css2?family=Roboto&display=swap" rel="stylesheet">
    <!-- Pygments syntax highlighting  -->
    <link rel="stylesheet" href="/assets/css/highlighting/trac.css" type="text/css">
    <link rel="icon" type="image/x-icon" href="/assets/favicon.ico"><script defer data-domain="docs.sel4.systems"
	    src="https://analytics.sel4.systems/js/script.js"></script></head>

  <body class="container-fluid">

    



<header>
  <ul class="row menu">
    <li class="col-xs-12 col-md-2" >
            <a href="https://sel4.systems" class="skip-icon">
              <img class="img-responsive" src="/assets/logo-text-white.svg" alt="seL4 logo" />
            </a>
    </li>
    <li class="col-xs-12 col-md-10 menu">
      <nav aria-label="Banner links">
        <h2><a href="/Resources" />Resources</h2>
        <h2><a href="/processes" />Contributing</a></h2>
        <h2><a href="/projects" />Projects</h2>
        <h2><a href="/Tutorials" />Tutorials</h2>
        <iframe title="DuckDuckGo search bar" src="https://duckduckgo.com/search.html?site=docs.sel4.systems&prefill=Search%20sel4.systems" style="overflow:hidden;margin-bottom:10px; padding:0;height:40px;float:right;border-width: 0px"></iframe>
      </nav>
    </li>
  </ul>
  <div class="clear"></div>
  
<div class="breadcrumbs bootstrap hidden-sm-down">
  <nav class="sel-breadcrumb" aria-label="Breadcrumb" >
    <ol class=" list-unstyled" vocab="http://schema.org/" typeof="BreadcrumbList">
      
      
        

        

        <li class="breadcrumb-item" property="itemListElement" typeof="ListItem">
            <a property="item" typeof="WebPage" href="/">
              <span property="name"><b>seL4 Docs</b></span>
            </a>
            <meta property="position" content="1" />
        </li>
      
        

        

        <li class="breadcrumb-item" property="itemListElement" typeof="ListItem">
            <a property="item" typeof="WebPage" href="/projects/">
              <span property="name"><b>Projects</b></span>
            </a>
            <meta property="position" content="2" />
        </li>
      
        

        
          <li class="breadcrumb-item" property="itemListElement" typeof="ListItem">
            <span property="name">Meta Docsite</span>
            <meta property="position" content="3" /></li>
          
    </ol>
  </nav>
  <nav class="sel-version" aria-label="Current Versions">
    <ol class="list-unstyled">
      <li class="list-unstyled text-right" style="margin-left:auto; padding:0rem 0rem;">
        Current versions:</li>
      <li class="list-unstyled text-right">
      <a href="/releases/sel4/13.0.0"><b>seL4-13.0.0</b></a></li>
      <li class="list-unstyled text-right">
      <a href="/releases/microkit/1.4.1"><b>microkit-1.4.1</b></a></li>
      <li class="list-unstyled text-right">
      <a href="/releases/camkes/camkes-3.11.0"><b>camkes-3.11.0</b></a></li>
      <li class="list-unstyled text-right">
      <a href="/releases/capdl/0.3.0"><b>capDL-0.3.0</b></a></li>
      </ol>
  </nav>
  <div class='clear'></div>
</div>


</header>

    <main>
      <div class="row">
  <div class="hidden-xs col-sm-4 col-md-3 col-lg-2">
    


<div class="sidebar">















    <ul class="nav nav-sidebar">
  
    
    

    
        <li class="">
            <a class="" href="/projects/sel4/">seL4</a>
        </li>
  
    
    

    
        <li class="">
            <a class="" href="/projects/l4v/">L4.verified</a>
        </li>
  
    
    

    
        <li class="">
            <a class="" href="/projects/camkes/">CAmkES</a>
        </li>
  
    
    

    
        <li class="">
            <a class="" href="/projects/capdl/">CapDL</a>
        </li>
  
    
    

    
        <li class="">
            <a class="" href="/projects/elfloader/">Elfloader</a>
        </li>
  
    
    

    
        <li class="">
            <a class="" href="/projects/buildsystem/">seL4 Buildsystem</a>
        </li>
  
    
    

    
        <li class="">
            <a class="" href="/projects/user_libs/">user_libs</a>
        </li>
  
    
    

    
        <li class="">
            <a class="" href="/projects/sel4runtime/">The seL4 run-time</a>
        </li>
  
    
    

    
        <li class="">
            <a class="" href="/projects/sel4webserver/">seL4webserver</a>
        </li>
  
    
    

    
        <li class="">
            <a class="" href="/projects/sel4-tutorials/">seL4 tutorials</a>
        </li>
  
    
    

    
        <li class="">
            <a class="" href="/projects/sel4bench/">sel4bench</a>
        </li>
  
    
    

    
        <li class="">
            <a class="" href="/projects/sel4test/">seL4Test</a>
        </li>
  
    
    

    
        <li class="">
            <a class="" href="/projects/virtualization/">Virtualization</a>
        </li>
  
    
    

    
        <li class="">
            <a class="" href="/projects/camkes-vm/">camkes-vm</a>
        </li>
  
    
    

    
        <li class="">
            <a class="" href="/projects/dockerfiles/">Dockerfiles</a>
        </li>
  
    
    

    
        <li class="active">
            <a class="" href="/projects/docsite/">seL4 Documentation website</a>
        </li>
  
    
    

    
        <li class="">
            <a class="" href="/projects/sel4_tools/">seL4_tools</a>
        </li>
  
    
    

    
        <li class="">
            <a class="" href="/projects/microkit/">Microkit</a>
        </li>
  
    
    

    
        <li class="">
            <a class="" href="/projects/hardware_hacks/">Hardware Hacks</a>
        </li>
  
    
    

    
        <li class="">
            <a class="" href="/projects/rust/">Rust</a>
        </li>
  
    </ul>


</div>

  </div>
  <div class="content col-sm-8 col-md-6 col-lg-7 main">
    
<!--
    Copyright 2020 seL4 Project a Series of LF Projects, LLC.
    SPDX-License-Identifier: CC-BY-SA-4.0
-->

<h1 id="sel4-documentation-site">seL4 Documentation site</h1>

<p>These are the sources for the seL4 Documentation site located at
&lt;&gt;. It is for cooperatively developing and sharing
documentation on <a href="https://sel4.systems">seL4</a>.</p>

<p>See <a href="processes/docs-contributing.md">CONTRIBUTING.md</a> for information on how to
contribute. <em>TL;DR click edit on the page in GitHub, make your changes and then
submit a pull request.</em></p>

<p>Ask on the <a href="https://lists.sel4.systems/postorius/lists/">mailing list</a> or open an issue if something doesn’t
make sense.</p>

<p>We’ve tried to make sure the hosted site is <a href="https://www.w3.org/TR/WCAG20/">WCAG 2.0
AA</a> compliant.  Please let us know if we have
missed something.</p>

<h2 id="building-the-site">Building the site</h2>

<h3 id="install">Install</h3>

<h4 id="submodules">Submodules</h4>

<p>You need to run this only once after you have cloned this the repo.</p>

<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git submodule init
git submodule update
</code></pre></div></div>

<h4 id="ruby">Ruby</h4>

<p>We recommend using <a href="https://github.com/rbenv/rbenv">rbenv</a> to install the
correct Ruby version.</p>

<p>On Mac, using <a href="https://brew.sh">homebrew</a>:</p>

<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>brew <span class="nb">install </span>ruby-build rbenv
<span class="c"># follow the instructions this command shows, and start a new shell afterwards</span>
rbenv init
<span class="c"># in the docs directory (root of this repo):</span>
rbenv <span class="nb">install</span>
</code></pre></div></div>

<p>On apt-based Linux distributions (e.g. Ubuntu, Debian):</p>

<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>apt <span class="nb">install </span>rbenv
<span class="c"># follow the instructions this command shows, and start a new shell afterwards</span>
rbenv init
<span class="c"># in the docs directory (root of this repo):</span>
rbenv <span class="nb">install</span>
</code></pre></div></div>

<p>After these, you should be able to forget about <code class="language-plaintext highlighter-rouge">rbenv</code>, the <code class="language-plaintext highlighter-rouge">Makefile</code> will now
see the correct Ruby version.</p>

<h4 id="python">Python</h4>

<p>The build is tested with Python 3.9. More recent versions are likely to work as
well. After installing Python via e.g. <code class="language-plaintext highlighter-rouge">homebrew</code> or <code class="language-plaintext highlighter-rouge">apt</code>, you can install the
Python build dependencies with:</p>

<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>pip3 <span class="nb">install</span> <span class="nt">--user</span> camkes-deps
</code></pre></div></div>

<h4 id="linters">Linters</h4>

<p>If you are using the lint checks, they require <code class="language-plaintext highlighter-rouge">tidy</code> and <code class="language-plaintext highlighter-rouge">liquid-linter</code>. If
you just want to build the site, you can skip these.</p>

<ul>
  <li>HTML output checking using <code class="language-plaintext highlighter-rouge">tidy</code>: <code class="language-plaintext highlighter-rouge">make check_html_output</code></li>
  <li>Liquid syntax checking using <code class="language-plaintext highlighter-rouge">liquid-linter</code>: <code class="language-plaintext highlighter-rouge">make check_liquid_syntax</code></li>
</ul>

<h3 id="build">Build</h3>

<p>To build and host locally:</p>

<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>make serve
<span class="c">#   Server address: http://127.0.0.1:4000/</span>
<span class="c">#   Server running... press ctrl-c to stop.</span>
</code></pre></div></div>

<p>Or using Docker (you need <a href="https://docs.docker.com/get-docker/">Docker
installed</a> and running for this):</p>

<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>make docker_serve
</code></pre></div></div>

<h3 id="makefile-and-jekyll_envproduction-version">Makefile and JEKYLL_ENV=production version</h3>

<p>Jekyll environment flags can be used to provide some content only in a
production environment.</p>

<p>One way we use this is to show data generated by rules in the Makefile and saved
in <code class="language-plaintext highlighter-rouge">\_data/generated.yml</code>. If you want to serve the site locally in production
mode there are <code class="language-plaintext highlighter-rouge">make</code> rules for this.  You will need to call the make rule to
generate the <code class="language-plaintext highlighter-rouge">\_data/generated.yml</code> also.</p>

<h2 id="how-the-site-is-set-up">How the site is set up</h2>

<p>Our documentation is contained in a collection of Markdown files stored in this
repository. We use <a href="https://jekyllrb.com/">Jekyll</a> to generate a static html
website that is then hosted on GitHub pages. Our continuous integration is
configured to regenerate and update the live site whenever a pull request is
merged. There is a timestamp in the source that indicates when it was last
generated.  Additionally, each page has a timestamp and revision hash from when
it was last updated located in the footer based on the git history.</p>

<p>The markdown pages are rendered using
<a href="https://kramdown.gettalong.org/">Kramdown</a>, a ruby-based markdown converter
that is configured to interpret the markdown files (<code class="language-plaintext highlighter-rouge">.md</code>) as GitHub flavoured
markdown.  We are currently using the <code class="language-plaintext highlighter-rouge">jekyll-theme-bootstrap</code> theme that
provides a sass implementation of bootstrap.  Our custom styling is contained in
<code class="language-plaintext highlighter-rouge">assets/css/style.scss</code>.  <code class="language-plaintext highlighter-rouge">HTML</code> templates are in either <code class="language-plaintext highlighter-rouge">\_layouts</code> or
<code class="language-plaintext highlighter-rouge">\_includes</code>.</p>

<h2 id="compliance-style-and-formatting-checks">Compliance, style and formatting checks</h2>

<h3 id="wcag-20-aa-conformance">WCAG 2.0 AA conformance</h3>

<p>There is a make rule to check conformance to all testable statements from the
guidelines. <code class="language-plaintext highlighter-rouge">make check_conformance</code>. It requires the site to be hosted locally
(using <code class="language-plaintext highlighter-rouge">make serve</code>) and a local server of <a href="https://github.com/paypal/AATT">Automated Accessibility Testing Tool
(AATT)</a>.</p>

<p><code class="language-plaintext highlighter-rouge">make check_conformance</code> will output a file named <code class="language-plaintext highlighter-rouge">conformance_results.xml</code>
which is a junit test suite output file that will contain a test case for each
generated html file of the site.  A make rule <code class="language-plaintext highlighter-rouge">make check_conformance_errors</code>
will grep for failing test cases and output the html page name.  The idea here is
to detect if any pages are failing and then manually using the AATT tool’s
web interface to check what parts of the page violate the guidelines.</p>


  </div>







  
    
<div class="sidebar-toc hidden-xs hidden-sm col-md-3 col-lg-3">
    <ul id="toc" class="section-nav">
<li class="toc-entry toc-h2"><a href="#building-the-site">Building the site</a>
<ul>
<li class="toc-entry toc-h3"><a href="#install">Install</a>
<ul>
<li class="toc-entry toc-h4"><a href="#submodules">Submodules</a></li>
<li class="toc-entry toc-h4"><a href="#ruby">Ruby</a></li>
<li class="toc-entry toc-h4"><a href="#python">Python</a></li>
<li class="toc-entry toc-h4"><a href="#linters">Linters</a></li>
</ul>
</li>
<li class="toc-entry toc-h3"><a href="#build">Build</a></li>
<li class="toc-entry toc-h3"><a href="#makefile-and-jekyll_envproduction-version">Makefile and JEKYLL_ENV=production version</a></li>
</ul>
</li>
<li class="toc-entry toc-h2"><a href="#how-the-site-is-set-up">How the site is set up</a></li>
<li class="toc-entry toc-h2"><a href="#compliance-style-and-formatting-checks">Compliance, style and formatting checks</a>
<ul>
<li class="toc-entry toc-h3"><a href="#wcag-20-aa-conformance">WCAG 2.0 AA conformance</a></li>
</ul>
</li>
</ul>
</div>

  
  
<div class="sidebar-toc hidden-xs hidden-sm col-md-3 col-lg-3">
  
    <ul class="section-nav">
    	<h2> seL4 Documentation website </h2> 
        <li>
          
          <a style=" font-weight: bold; " class="" href="/projects/docsite/">
            Documentation homepage
          </a>
        </li>

























  







    </ul>

</div>


</div>

    </main>
    


<footer class="site-footer">

  <h2 class="footer-heading">seL4 docs</h2>

  <div class="footer-col-wrapper">

    <div class="col-md-2">
      



<ul class="social-media-list">
  <li><a href="https://github.com/sel4"><i class="fab fa-github"></i> <span class="username">sel4</span></a></li><li><a href="https://github.com/sel4proj"><i class="fab fa-github"></i> <span class="username">sel4proj</span></a></li>
</ul>

    </div>

    <div class="col-md-8">
      <ul class="list-unstyled">
        <li>
          This site is for displaying seL4 related documentation.  Pull requests are welcome.
        </li>
        
          <li>
            Site last updated: Fri Feb 7 10:17:38 2025 +1100 ee78c8857c
          </li>
          <li>
                Page last updated: Mon Nov 30 09:25:37 2020 +1100 977ed44f17
          </li>
        
      </ul>
    </div>
    <div class="col-md-2">
<a href="https://github.com/seL4/docs/blob/master/projects/docsite/index.md">View page on GitHub</a>
      <br />
      <a href="https://github.com/seL4/docs/edit/master/projects/docsite/index.md">Edit page on GitHub</a>
      <br />
      <a href="/sitemap">Sitemap</a>
    </div>

  </div>

</footer>

  </body>
</html>
